package Top100;

import Algorithm.comprehensive.lis.LIS_Point;
import DataStructure.arrayAndList.doublePoint.Find2ValueInArray;
import DataStructure.arrayAndList.doublePoint.Find2ValueInArray_GetAllPosition;
import DataStructure.arrayAndList.doublePoint.Find3ValueInArray;
import DataStructure.arrayAndList.doublePoint.OriginLength;
import DataStructure.arrayAndList.list.listRealize.TheLastKImpl;

/**
 * @author liujun
 * @version 1.0
 * @date 2021/12/7
 * @author—Email ljfirst@mail.ustc.edu.cn
 * @blogURL https://blog.csdn.net/ljfirst
 * @description 双指针专题
 */
public interface DoublePoint {

    // JavaTips003:一个类实现了两个接口，这两个接口具体同名的default函数，编译不过，因为无法区分
    // 具体见：https://blog.csdn.net/qq_22339457/article/details/52664395
    default void DoublePoint() {
        // 最长递增子序列 双指针
        LIS_Point point1 = new LIS_Point();

        // 2数之和
        Find2ValueInArray point2 = new Find2ValueInArray();

        //找出某 2 个数相加得 target,返回所有的 2 数之和在数组中原位置的组合
        Find2ValueInArray_GetAllPosition fg = new Find2ValueInArray_GetAllPosition();

        // 3数之和
        Find3ValueInArray point3 = new Find3ValueInArray();

        // 链表的倒数第K个元素
        TheLastKImpl point4 = new TheLastKImpl();

        // 给定一个包含重复数字的数组，返回不重复的个数
        OriginLength ol = new OriginLength();
    }
}
